class Souris {

    public static final int ESPERANCE_VIE_DEFAUT = 36;

    /*******************************************
     * Completez le programme a partir d'ici.
     *******************************************/
    private int poids;
    private String couleur;
    private int age = 0;
    private int esperance_vie;
    private boolean clonee;
    
    public Souris(int p, String c){
    	poids = p;
    	couleur = c;
    	esperance_vie = ESPERANCE_VIE_DEFAUT;
    	System.out.println("Une nouvelle souris !");
    }
    
    public Souris(int p, String c, int a){
    	poids = p;
    	couleur = c;
    	age = a;
    	esperance_vie = ESPERANCE_VIE_DEFAUT;
    	System.out.println("Une nouvelle souris !");
    }
    
    public Souris(Souris autreSouris){
    	poids = autreSouris.poids;
    	couleur = autreSouris.couleur;
    	age = (autreSouris.age);
    	esperance_vie = (int)(0.8*(autreSouris.esperance_vie));
    	clonee = true;
    	System.out.println("Clonage d'une souris !");
    }
    
    public int getPoids(){
    	return poids;
    }
    
    public String getCouleur(){
    	return couleur;
    }
    
    public int getAge(){
    	return age;
    }
    
    public String getClonantEtat(){
    	if(clonee == true){
    		return ", clonee,";
    	}
    	else{
    		return "";
    	}
    }
    
    @Override public String toString()
    {
    	
    	return String.format("Une souris %s%s de %s mois et pesant %s grammes ", 
    			getCouleur(),getClonantEtat(),getAge(),getPoids());
    }
    
    public void setCouleur(String c)
	{
		couleur = c;
	}

	public void vieillir()
	{
		age++;
		if (clonee == true && age > (esperance_vie / 2))
		{
			setCouleur("verte");
		}
	}

	public void evolue()
	{
		while (age < esperance_vie)
		{
			vieillir();
		}
	}
}
/*******************************************
 * Ne rien modifier après cette ligne.
 *******************************************/
public class HelloWorld {
	
    public static void main(String[] args) {
        Souris s1 = new Souris(50, "blanche", 2);
        Souris s2 = new Souris(45, "grise");
        Souris s3 = new Souris(s2);

        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        s1.evolue();
        s2.evolue();
        s3.evolue();
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
    }
}
